js 关于 replace 取值、替换第几个匹配项 您所在的位置:网站首页 jq replace 全部替换 js 关于 replace 取值、替换第几个匹配项

js 关于 replace 取值、替换第几个匹配项

2023-05-31 15:40| 来源: 网络整理| 查看: 265

在日常开发中,经常遇到针对字符串的替换、截取,知识点比较碎容易混淆,特此总结一下,仅供参考。 〇、前言

在日常开发中,经常遇到针对字符串的替换、截取,知识点比较碎容易混淆,特此总结一下,仅供参考。

一、替换第一个匹配项 字符串替换 let strtest = "0123测试replace456测试replace789测试replace0" console.log("原字符串:" + strtest) let outstr = strtest.replace("测试","ceshi") console.log("输出字符串:" + outstr) // 原字符串:0123测试replace456测试replace789测试replace0 // 输出字符串:0123ceshireplace456测试replace789测试replace0 正则表达式替换

 当直接在被替换字符串恰后加上 / 时,不添加修饰符,就等同于直接字符串替换。

let strtest = "0123测试replace456测试replace789测试replace0" console.log("原字符串:" + strtest) let outstr = strtest.replace(/测试/, "ceshi") console.log("输出字符串:" + outstr) // 原字符串:0123测试replace456测试replace789测试replace0 // 输出字符串:0123ceshireplace456测试replace789测试replace0 二、替换全部匹配项 字符串分组再联合 let strtest = '0123测试replace456测试replace789测试replace0'; console.log("原字符串:" + strtest) let arrstr = strtest.split("测试"); let outstr = arrstr.join("ceshi"); console.log("输出字符串:" + outstr) // 原字符串:0123测试replace456测试replace789测试replace0 // 输出字符串:0123ceshireplace456ceshireplace789ceshireplace0 正则表达式替换

 格式:/待替换的字符串/g、/待替换的字符串/mgi。

  g:执行全局匹配,替换全部匹配项;

  i:不区分大小写;

  m:多行匹配。

gim 可所以组合使用。

let strtest = "0123测试replace456测试replace789测试replace0" console.log("原字符串:" + strtest) let outstr = strtest.replace(/测试/g, "ceshi") // 另一种写法: // let reg = new RegExp("测试", "g") // let outstr = strtest.replace(reg, "ceshi") console.log("输出字符串:" + outstr) // 原字符串:0123测试replace456测试replace789测试replace0 // 输出字符串:0123ceshireplace456ceshireplace789ceshireplace0 三、替换第 n 个匹配项

下边以第二个为例。

字符串分组再联合

思路:先通过被替换项分组,再根据目标位数把整个分组分为两个部分,在通过替换字符串联合。

let num = 2 // 定义替换第二个匹配项 let strtest = '0123测试replace456测试replace789测试replace0'; console.log("原字符串:" + strtest) let arrstr = strtest.split("测试"); if(arrstr.length < num) return let arrstr1=[],arrstr2=[] for(let ii=0;ii strtest.indexOf(endstr)) return console.log("原字符串:" + strtest) let arr = strtest.split(startstr) let arr2 = arr[1].split(endstr) let resultstr = arr2[0] let outstr = startstr + resultstr + endstr console.log("输出字符串:" + outstr) // 原字符串:0123replace456测试replace789测试replace0 // 输出字符串:replace456测试replace78 正则表达式方法 replace()、match()、exec()

替换为指定字符串:( replace() )

let strtest = '0123replace456测试replace789测试replace0'; console.log("原字符串:" + strtest) let outstr = strtest.replace(/(.*?)/m, "-ceshi-") // \ 为转义字符 console.log("输出字符串:" + outstr) // 原字符串:0123replace456测试replace789测试replace0 // 输出字符串:0123-ceshi-9测试replace0

取出带标记字符串的内容:( match() )

let strtest = '0123replace456测试replace789测试replace0'; console.log("原字符串:" + strtest) let outstr = strtest.match(/(.*?)/m) console.log("输出字符串:" + outstr) // 原字符串:0123replace456测试replace789测试replace0 // 输出字符串:replace456测试replace78

当可能有多个匹配项时:( exec() )

let strtest = "这是要提取的内容,还有另一个内容" console.log("原字符串:" + strtest) let regex = /(.*?)/gm const matches = [] let match while ((match = regex.exec(strtest)) !== null) { matches.push(match[1]) console.log(match) } console.log("输出全部匹配项:", matches) // 原字符串:这是要提取的内容,还有另一个内容 // (2) ["要提取的内容", "要提取的内容", index: 2, input: "这是要提取的内容,还有另一个内容", groups: undefined] // (2) ["另一个内容", "另一个内容", index: 28, input: "这是要提取的内容,还有另一个内容", groups: undefined] // 输出全部匹配项: (2) ["要提取的内容", "另一个内容"]

本文来自博客园,作者:橙子家,微信号:zfy1070491745,有任何疑问欢迎沟通,一起成长。

转载本文请注明原文链接:https://www.cnblogs.com/czzj/p/js_replace.html



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有